<?php

/*
 * Modelo: "datos_ubi.php"
 * Copyright 2011 SISVOX.
 *
 * Licenciado bajo SISVOX, Version 1.0 (la "Licencia");
 * El codigo presente que compone este Software es propiedad unica y
 * exclusivamente de SISVOX, por lo tanto, usted no podr� utilizar este
 * archivo excepto en cumplimiento de la Licencia ofrecida por SISVOX.
 * Usted puede obtener una copia de la Licencia en:
 *
 *      Soluciones Integrales de Software Vox (SISVOX)
 *                 http://www.sisvox.com
 *
 *     - Carlos Calvo      <ccalvo@sisvox.com>
 *     - Andres Hernandez  <ahernandez@sisvox.com>
 *
 * A menos que sea requerido por la ley aplicable o se acuerde por escrito,
 * el software distribuido bajo la licencia se distribuye "TAL CUAL", CON
 * LAS GARANTIAS Y CONDICIONES expresadas en la "Licencia".
 */


@include_once('enlaceBD.php');
@include_once("parroquia.php");
@include_once("sector.php");
@include_once("helper.php");

class Datos_ubi {
	
    /* Nombre de las Variables del Modelo (INFORMATIVO)
	
	*/

    // Variable para los resultados de las Consultas
    private $respuesta;

	// Tablas del Modelo
    private $tsmat_datos_ubi 		= "smat_datos_ubi";
	
	private $tsmat_tipo_via 		= "smat_tipo_via";
	
	
    // =================================================================================================================
    //	FUNCION - INSERTAR LOS DATOS DE UNA INFRACCIÓN
    // =================================================================================================================
	
    public function insertar_datos_inf( $id_motivo, $fecha, $hora, $id_tipo_ide_inf, $nro_ide_inf, $nombre_infractor, $grado_lic, $id_condi_per, $sexo, $fecha_nacimiento, $domicilio, $cod_tel, $nro_tel, $cod_cel, $nro_cel, $correo, $vehiculo, $placa, $serial_carroceria, $marca, $modelo, $color, $anyo, $tipo, $uso, $geolocalizacion, $coord_x, $coord_y, $id_estado, $id_municipio, $id_parroquia, $id_sector, $id_tipo_via, $referencia, $remolque, $id_tipo_ide_ope, $nro_ide_ope, $nombre_operador, $placa_grua, $id_estacionamiento, $id_tipo_ide_fun, $nro_ide_fun, $login_registro, $importe, $observaciones )
    {
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smist_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Agregar la Infracción (Problemas en la Conexión): ".$conexion->getLastMessage();
			$this->retorno[2] = "-1";
            return $this->retorno;
        }
        else
        {
            $fmt_fecha_inf	= $conexion->darFormatoFecha($fecha);
			$fmt_hora_inf	= $conexion->darFormatoHora($hora);
			$fmt_fecha_nac	= $conexion->darFormatoFecha($fecha_nacimiento);
			$fecha_actual 	= $conexion->getSQLTimeStamp();
			
			$fmt_fecha_nac_edad	= $conexion->darFormatoFechaEdad($fecha_nacimiento);
			
			$edad = calcular_edad( $fmt_fecha_nac_edad );
			
			$sql = "insert into ".$_SESSION['db_smit_WS'].$_SESSION['schema_db_WS'].".$this->tsmit_datos_inf ( id_motivo, id_status, fecha, hora, id_tipo_ide_inf, nro_ide_inf, nombre_infractor, grado_lic, id_condi_per, sexo, edad, fecha_nacimiento, domicilio, cod_tel, nro_tel, cod_cel, nro_cel, correo, vehiculo, placa, serial_carroceria, marca, modelo, color, anyo, tipo, uso, geolocalizacion, coord_x, coord_y, id_estado, id_municipio, id_parroquia, id_sector, id_tipo_via, referencia, remolque, id_tipo_ide_ope, nro_ide_ope, nombre_operador, placa_grua, id_estacionamiento, id_tipo_ide_fun, nro_ide_fun, login_registro, fecha_registro, importe, observaciones )
             		values ( $id_motivo, 1, $fmt_fecha_inf, $fmt_hora_inf, '$id_tipo_ide_inf', '$nro_ide_inf', '$nombre_infractor', '$grado_lic', $id_condi_per, '$sexo', $edad, $fmt_fecha_nac, '$domicilio', '$cod_tel', '$nro_tel', '$cod_cel', '$nro_cel', '$correo', ";
			
            $sql .= "'$vehiculo', ";
			
			if ( $vehiculo == "SI" ) {	
				$sql .= "'$placa', '$serial_carroceria', '$marca', '$modelo', '$color', '$anyo', '$tipo', '$uso', ";
			} else if ( $vehiculo == "NO" ) {
				$sql .= "null, null, null, null, null, null, null, null, ";
			}
			
			$sql .= "'$geolocalizacion', ";
			
			if ( $geolocalizacion == "SI" ) {
				$sql .= "'$coord_x', '$coord_y', ";
			} else if ( $geolocalizacion == "NO" ) {
				$sql .= "null, null, ";
			}
			
			$sql .= "'$id_estado', '$id_municipio', ";
			
			if ( $id_parroquia != "" ) {
				$sql .= "'$id_parroquia', ";
			} else {
				$sql .= "null, ";
			}
			if ( $id_sector != "" ) {
				$sql .= "'$id_sector', ";
			} else {
				$sql .= "null, ";
			}
			
			$sql .= "$id_tipo_via, ";
			
			if ( $referencia != "" ) {
				$sql .= "'$referencia', ";
			} else {
				$sql .= "null, ";
			}
			
			$sql .= "'$remolque', ";
			
			if ( $remolque == "SI" ) {
				$sql .= "'$id_tipo_ide_ope', '$nro_ide_ope', '$nombre_operador', '$placa_grua', $id_estacionamiento, ";
			} else if ( $remolque == "NO" ) {
				$sql .= "null, null, null, null, null, ";
			}
			
			$sql .= "'$id_tipo_ide_fun', '$nro_ide_fun', '$login_registro', $fecha_actual, $importe, ";
			
			if ( $observaciones != "" ) {
				$sql .= "'$observaciones')";
			} else {
				$sql .= "null)";
			}
			
			$this->respuesta = $conexion->consultar($sql);
			
            $temparray = $conexion->buscarFilasAfectadas();
			
            if($temparray == 0)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Agregar la Infracción: ".$conexion->getLastMessage();
				$this->retorno[2] = "-1";
            }
            else
            {
            	$id = $conexion->buscarUltimoInsertID();
				
                $this->retorno[0] = "S";
                $this->retorno[1] = "La Infracción se ha Agregado con Exito con el ID: ".$id;
				$this->retorno[2] = $id;
            }
			
			$conexion->desconectar();
			return $this->retorno;
        }
    }
	
	
	// =================================================================================================================
    //	FUNCION - CONSULTAR LOS DATOS (XML) DE LA UBICACIÓN DE UN ACCIDENTE DADO SU ID
    // =================================================================================================================
	
    public function consultar_datos_ubi_xml( $id_expediente ) 
	{
        $this->retorno = array();
		
		$conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smat_WS'] );
		
        if(!$conexion)
        {
            $this->retorno[0] = "N";
            $this->retorno[1] = "No se pudo Consultar la Ubicación de un Accidente (Problemas en la Conexión): ".$conexion->getLastMessage();
            return $this->retorno;
        }
        else
        {
        	$sql = "select u.id_expediente as id_expediente, 
					u.id_parroquia as id_parroquia, 
					u.id_sector as id_sector, 
					t.nombre as nombre_tipo_via, 
					u.nombre_via as nombre_via, 
					u.referencia as referencia, 
					u.geolocalizacion as geolocalizacion, 
					u.coord_x as coord_x, 
					u.coord_y as coord_y 
				from ".$_SESSION['db_smat_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_datos_ubi as u, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_tipo_via as t 
				where u.id_expediente = $id_expediente and 
					u.id_tipo_via = t.id_tipo_via";
			
			$this->respuesta = $conexion->consultar($sql);
			
			$temparray = $this->respuesta->buscar_fila();
			
            if(!temparray)
            {
                $this->retorno[0] = "N";
                $this->retorno[1] = "No se pudo Consultar la Ubicación de un Accidente: ".$conexion->getLastMessage();
            }
            else
            {
				// Si se encontro un Resultado con el ID dado
				if ( $temparray['id_expediente'] != "" ) 
				{
					
					$_xml="<datos_ubi>";
					$_xml.="<id_expediente>".$temparray['id_expediente']."</id_expediente>";
					$_xml.="<id_parroquia>".strtoupper($temparray['id_parroquia'])."</id_parroquia>";
					if ( $temparray['id_parroquia'] != "" ) {
						// Consultamos el Nombre de la Parroquia
						$parroquia			= new Parroquia;
						$nombre_parroquia   = $parroquia->consultar_nombre( $temparray['id_parroquia'] );
						$_xml.="<parroquia>".utf8_encode(strtoupper($nombre_parroquia))."</parroquia>";
					} else {
						$_xml.="<parroquia></parroquia>";
					}
					
					$_xml.="<id_sector>".strtoupper($temparray['id_sector'])."</id_sector>";
					if ( $temparray['id_sector'] != "" ) {
						// Consultamos el Nombre de la Sector
						$sector				= new Sector;
						$nombre_sector  	= $sector->consultar_nombre( $temparray['id_sector'] );
						$_xml.="<sector>".utf8_encode(strtoupper($nombre_sector))."</sector>";
					} else {
						$_xml.="<sector></sector>";
					}
					
					$_xml.="<nombre_tipo_via>".utf8_encode(strtoupper($temparray['nombre_tipo_via']))."</nombre_tipo_via>";
					$_xml.="<nombre_via>".utf8_encode(strtoupper($temparray['nombre_via']))."</nombre_via>";
					$_xml.="<referencia>".utf8_encode(strtoupper($temparray['referencia']))."</referencia>";
					$_xml.="<geolocalizacion>".$temparray['geolocalizacion']."</geolocalizacion>";
					$_xml.="<coord_x>".$temparray['coord_x']."</coord_x>";
					$_xml.="<coord_y>".$temparray['coord_y']."</coord_y>";
					
					$_xml.="</datos_ubi>";
				}
				// Si no se encontro ningun Resultado con el ID dado
				else
				{
					$_xml="<datos_ubi>";
					$_xml.="VACIO";
					$_xml.="</datos_ubi>";
				}
				
				$this->retorno[0] = "S";
				$this->retorno[1] = $_xml;
            }
			
			$conexion->desconectar();
			return $this->retorno;
		}
    }
	
	
	// =======================================================================================================
    // FUNCION - CONSULTAR LOS DATOS DE LA UBICACIÓN DE UN ACCIDENTE
    // =======================================================================================================
    
    public function consultar_datos_ubi( $id_expediente ) {
        $conexion 	= new EnlaceBD;
        $var 		= $conexion->conectar( $_SESSION['db_smat_WS'] );
		
		$sql = "select u.id_expediente as id_expediente, 
					u.id_parroquia as id_parroquia, 
					u.id_sector as id_sector, 
					t.nombre as nombre_tipo_via, 
					u.nombre_via as nombre_via, 
					u.referencia as referencia, 
					u.geolocalizacion as geolocalizacion, 
					u.coord_x as coord_x, 
					u.coord_y as coord_y 
				from ".$_SESSION['db_smat_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_datos_ubi as u, 
					".$_SESSION['db_smat_base_WS'].$_SESSION['schema_db_WS'].".$this->tsmat_tipo_via as t 
				where u.id_expediente = $id_expediente and 
					u.id_tipo_via = t.id_tipo_via";
		
        $this->respuesta = $conexion->consultar($sql) 
			or die("No se pudo Consultar los Datos de la Ubicación del Accidente: $id_expediente.");
		
        $temparray = $this->respuesta->buscar_fila();
			$lista_datos_ubi[0] = $temparray['id_expediente'];
			
			$lista_datos_ubi[1] = strtoupper($temparray['id_parroquia']);
			if ( $lista_datos_ubi[1] != "" ) {
				// Consultamos el Nombre de la Parroquia
				$parroquia				= new Parroquia;
				$lista_datos_ubi[2]    = $parroquia->consultar_nombre($lista_datos_ubi[1]);
			} else {
				$lista_datos_ubi[2]    = "";
			}
			
			$lista_datos_ubi[3] = strtoupper($temparray['id_sector']);
			if ( $lista_datos_ubi[3] != "" ) {
				// Consultamos el Nombre de la Sector
				$sector					= new Sector;
				$lista_datos_ubi[4]    = $sector->consultar_nombre($lista_datos_ubi[3]);
			} else {
				$lista_datos_ubi[4]    = "";
			}
			
			$lista_datos_ubi[5] = strtoupper($temparray['nombre_tipo_via']);
			$lista_datos_ubi[6] = strtoupper($temparray['nombre_via']);
			$lista_datos_ubi[7] = strtoupper($temparray['referencia']);
			$lista_datos_ubi[8] = $temparray['geolocalizacion'];
			$lista_datos_ubi[9] = $temparray['coord_x'];
			$lista_datos_ubi[10] = $temparray['coord_y'];
        
        $conexion->desconectar();
        return $lista_datos_ubi;
    }
}
?>